/**
 * 
 */
package com.gragra.nounIdentification;
/**
 * this implementation of MaxAssement lets the maximum values grow exponentially with each iteration;
 * the number of elements for each iteration is base^iterations
 * @author Christoph Teichmann
 * created Mar 26, 2013 11:01:14 AM
 * @version 0.1
 */
public class ExponentialIncreasingMax implements MaxAssessment
{
	/**
	 * creates a new instance using the given bases
	 * @param frameBase
	 * @param nounBase
	 */
	public ExponentialIncreasingMax(int frameBase, int nounBase)
	{
		this.frameBase = frameBase;
		this.nounBase = nounBase;
	}
	/**
	 * the base for the exponential growth of the number of frames
	 */
	private final int frameBase;
	/**
	 * the base for the exponential growth of the number of words
	 */
	private final int nounBase;
	/* (non-Javadoc)
	 * @see com.gragra.nounIdentification.MaxAssessment#getMaxNouns(int, com.gragra.nounIdentification.BaseNounIdentifier)
	 */
	@Override
	public int getMaxNouns(int iteration, BaseNounIdentifier fixedNounIdentifier)
	{return (int) Math.pow(nounBase, iteration);}
	/* (non-Javadoc)
	 * @see com.gragra.nounIdentification.MaxAssessment#getMaxFrames(int, com.gragra.nounIdentification.NounIdentifier)
	 */
	@Override
	public int getMaxFrames(int iteration, NounIdentifier nounIdentifier)
	{return (int) Math.pow(frameBase, iteration);}
}